Micron Document
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
| SparkN0de-git | SparkN0de |
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------


Displaying Raw • Download


tests/backend/eect/catalog.py dev (af76f09d) Text, 5.52 KB

T8b949e# SPDX-License-Identifier: 0BSD
T8b949e"""Scenario registry for Extended Edge Case Tester packs."""

Tff7b72from T7ee787__future__ Tff7b72import Te6edf3annotations

Tff7b72from T7ee787dataclasses Tff7b72import Te6edf3dataclass
Tff7b72from T7ee787typing Tff7b72import Te6edf3Literal

Te6edf3Taxonomy Tff7b72= Te6edf3LiteralTb4b4b4[
Ta5d6ff"Ta5d6fflogicTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fftimingTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffidentity_leakTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6ffresourceTa5d6ff"Tb4b4b4,
Ta5d6ff"Ta5d6fflive_envTa5d6ff"Tb4b4b4,
Tb4b4b4]


Tf0883e@dataclassTb4b4b4(Te6edf3frozenTff7b72=Tff7b72TrueTb4b4b4)
Tff7b72class T56d364ScenarioTb4b4b4:
T8b949e"""One EECT scenario mapped to a Zen gate and failure taxonomy."""

Tffa657idTb4b4b4: Tffa657str
Te6edf3packTb4b4b4: Tffa657str
Te6edf3gateTb4b4b4: Tffa657str
Te6edf3taxonomyTb4b4b4: Te6edf3Taxonomy
Te6edf3summaryTb4b4b4: Tffa657str
Te6edf3ciTb4b4b4: Tffa657bool Tff7b72= Tff7b72True


Te6edf3SCENARIOSTb4b4b4: Tffa657tupleTb4b4b4[Te6edf3ScenarioTb4b4b4, Tff7b72.Tff7b72.Tff7b72.Tb4b4b4] Tff7b72= Tb4b4b4(
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffidentity.switch.teardown_clears_contextTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffIdentitySwitchPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate6-identity-contextTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffidentity_leakTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffhotswap tears down prior context and drops it from contexts mapTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffidentity.switch.storage_paths_isolatedTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffIdentitySwitchPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate6-identity-contextTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffidentity_leakTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffidentity A and B use distinct database.db paths under identities/Ta5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffpath.direct.blocks_when_unavailableTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffMissingPathPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate4-scarcity-asyncTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6fftimingTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffdirect send raises recoverable TimeoutError and never outboundTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffpath.propagated.skips_awaitTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffMissingPathPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate4-scarcity-asyncTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6fftimingTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffpropagated delivery does not await peer pathTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffhostile.favourites.layout_fuzzTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffHostileMediumPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate3-hostile-mediumTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffnormalize_favourites_layout never crashes on hostile blobsTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffhostile.bug_report.redacts_secretsTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffHostileMediumPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate3-hostile-mediumTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffbug report preview redacts paths and full destination hashesTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffhostile.overlay.format_char_fixedTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffHostileMediumPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate3-hostile-mediumTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffMicron/Nomad strip fixed even when hidden with ZWSP or soft hyphenTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffhostile.favourites.null_bytesTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffHostileMediumPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate3-hostile-mediumTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6fffavourites layout rejects NUL in section ids and hashesTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffhostile.url.decimal_link_localTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffHostileMediumPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate3-hostile-mediumTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffLibreTranslate URL guard rejects decimal/hex/IPv6-mapped link-local SSRF formsTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffhostile.plugin.path_escapeTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffHostileMediumPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate3-hostile-mediumTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffplugin asset/zip paths reject drive letters, NULs, and traversalTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffhostile.overlay.path_escapeTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffHostileMediumPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate3-hostile-mediumTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffmap overlay relpaths reject drive letters, NULs, and traversalTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffscarcity.conversation.preview_cappedTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffScarcityPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate4-scarcity-asyncTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffresourceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffconversation list content preview stays within 240 charsTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffscarcity.conversation.fields_slimTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffScarcityPackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate4-scarcity-asyncTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffresourceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffconversation list omits heavy fields blobsTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffauth.csrf.mutating_without_tokenTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffAuthSurfacePackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate6-auth-surfaceTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffsampled mutating HTTP routes reject missing CSRFTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6ffauth.csrf.mutating_with_tokenTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffAuthSurfacePackTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate6-auth-surfaceTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6ffsecurity_surfaceTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffsampled mutating HTTP routes accept valid CSRFTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6fflv.l0.imports_sqlite_unicodeTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffLiveValidationTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate0-intentTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6fflive_envTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffL0 self-check imports, sqlite, unicode pathTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6fflv.l1.status_and_csrf_rejectTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffLiveValidationTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate6-auth-surfaceTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6fflive_envTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffL1 status OK and unauth mutating POST rejectedTa5d6ff"Tb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6fflv.l2.rns_subprocessTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffLiveValidationTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate0-intentTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6fflive_envTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffL2 RNS start/exit in isolated subprocessTa5d6ff"Tb4b4b4,
Te6edf3ciTff7b72=Tff7b72FalseTb4b4b4,
Tb4b4b4)Tb4b4b4,
Te6edf3ScenarioTb4b4b4(
Tffa657idTff7b72=Ta5d6ff"Ta5d6fflv.l3.loopback_tcpTa5d6ff"Tb4b4b4,
Te6edf3packTff7b72=Ta5d6ff"Ta5d6ffLiveValidationTa5d6ff"Tb4b4b4,
Te6edf3gateTff7b72=Ta5d6ff"Ta5d6ffgate0-intentTa5d6ff"Tb4b4b4,
Te6edf3taxonomyTff7b72=Ta5d6ff"Ta5d6fflive_envTa5d6ff"Tb4b4b4,
Te6edf3summaryTff7b72=Ta5d6ff"Ta5d6ffL3 loopback TCP bind prove-aliveTa5d6ff"Tb4b4b4,
Te6edf3ciTff7b72=Tff7b72FalseTb4b4b4,
Tb4b4b4)Tb4b4b4,
Tb4b4b4)


Tff7b72def Td2a8ffget_scenarioTb4b4b4(Te6edf3scenario_idTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Te6edf3ScenarioTb4b4b4:
Tff7b72for Te6edf3scenario Tff7b72in Te6edf3SCENARIOSTb4b4b4:
Tff7b72if Te6edf3scenarioTff7b72.Td2a8ffid Tff7b72== Te6edf3scenario_idTb4b4b4:
Tff7b72return Te6edf3scenario
Tff7b72raise Tf85149KeyErrorTb4b4b4(Ta5d6fffTa5d6ff"Ta5d6ffunknown EECT scenario: Tffd700{Te6edf3scenario_idTffd700}Ta5d6ff"Tb4b4b4)


Tff7b72def Td2a8ffscenarios_for_packTb4b4b4(Te6edf3packTb4b4b4: Tffa657strTb4b4b4) Tff7b72-Tff7b72> Tffa657tupleTb4b4b4[Te6edf3ScenarioTb4b4b4, Tff7b72.Tff7b72.Tff7b72.Tb4b4b4]Tb4b4b4:
Tff7b72return Tffa657tupleTb4b4b4(Te6edf3s Tff7b72for Te6edf3s Tff7b72in Te6edf3SCENARIOS Tff7b72if Te6edf3sTff7b72.Td2a8ffpack Tff7b72== Te6edf3packTb4b4b4)


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────